iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0

System

其實跟 System 沒有太大關係,只是這個系列該收尾了,能講的觀念基本上都講完了,剩下的就是一些你沒用過甚至不曉得,但都附在程式裡的內容了,例如 I/O 的操作,簡單的建立一個 txt 檔,並讀寫該檔案,或者使用正規表示法,來擷取字串中符合的內容。當然還有很多很多的東西,都可以有事沒事看看官方的文件,當作字典一樣去看,或者等哪天有需求再去 GOOGLE 都可以。

既然是系列文的一篇,當然不能隨便帶過,所以就上述兩個內容,我們來簡單的使用吧。

I/O

要在程式所屬的資料夾內產生一個檔案,那我們就需要知道程式碼的位置。

所以第一步 GOOGLE C# 程式路徑 然後我找到C#取得執行程式所在的路徑方法 @ 鴨爸的隨手寫寫 :: 痞客邦 ::,像我一開始說的 C# 已經存在很久很久了,幾乎沒有找不到的答案。

然後 GOOGLE C# 讀寫文字檔,就可以找到官方的文件,複製貼上修修改改一下,很容易就可以讀懂該如何撰寫了,寫程式就是這麼簡單。

所以程式就會長這樣

using System;
using System.IO;

namespace demo {
  class Program {
    static void Main (string[] args) {
      string path = Directory.GetCurrentDirectory ();
      string filename = path + "\\newfile.txt";
      using (StreamWriter sw = new StreamWriter (filename)) {
        sw.WriteLine ("Hello World!!");
      }
      using (StreamReader sr = new StreamReader (filename)) {
        string line;
        while ((line = sr.ReadLine ()) != null) {
          Console.WriteLine (line);
        }
      }
    }
  }
}

簡單的產生一個在程式執行目錄內的 newfile.txt 檔案,並且依行讀取內容,當然還有更多更多設定沒有細說。

正規表示法

一樣去 GOOGLE 正規表示法就可以了,等你了解正規表示法是做什麼後,我們便可以來使用。

GOOGLE C# 正規表示法 會找不到官方文件,因為官方將他稱為規則運算式,所以我通常都是用英文去下關鍵字,中文往往有太多翻譯。所以改以 C# Regex 就可以找到官方文件,

然後程式會變成

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace demo {
  class Program {
    static void Main (string[] args) {
      Regex rx = new Regex (@"M[a-zA-Z]+");
      var memberName = new List<string> () {
        "Mio",
        "Miffy",
        "Lulu",
        "NekoSan",
        "MooDoo",
      };
      foreach (var name in memberName) {
        if (rx.IsMatch (name))
          Console.WriteLine (name);
      }
    }
  }
}

只印出 M 開頭的成員名稱,在寫正規表示法時,我都會借助 RegExr: Learn, Build, & Test RegEx 這個網站檢查語法正確性,當然很多的規則都可以 GOOGLE 到,如常見的信箱驗證就有很多種寫法了。

一些小結論

今天講了當專案建立時都有的 System 的內容,當你今天覺得不夠用時,明天會介紹 nuget 是什麼與如何使用,幫助你找到更多的程式內容,學習沒有結束的一天,而這系列文只是一個開始。感覺這句應該放 30 天的 XD ,那麼當天就再講一次吧,畢竟這很重要,學海無涯。

感謝閱讀。

參考連結
System Namespace | Microsoft Docs
C#取得執行程式所在的路徑方法 @ 鴨爸的隨手寫寫 :: 痞客邦 ::
StreamWriter Class (System.IO) | Microsoft Docs
StreamReader Class (System.IO) | Microsoft Docs
Regex Class (System.Text.RegularExpressions) | Microsoft Docs


上一篇
DAY 27 特性
下一篇
DAY 29 NuGet
系列文
.net 後端起手式 30天認識 C# 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
deh
iT邦研究生 1 級 ‧ 2020-06-24 17:19:16

學海無涯 回頭是岸/images/emoticon/emoticon39.gif

我要留言

立即登入留言